﻿using LxBasic;

namespace LxCore
{
    public interface IField<T>
    {
        ICellVarArr<T>? GetCellVarArr(IIndexHost indexHost);//invalid返回null
        IFaceVarArr<T>? GetFaceVarArr(IIndexHost indexHost);
        bool IsParameter(out T value);
        bool IsEqual0();
    }
    public interface ICellVarArr<T>
    {
        T GetCellVar(int cellID);
    }
    public interface IFaceVarArr<T>
    {
        T GetFaceVar(int faceID);
    }
    public interface IZoneField<T>
    {
        ICellVarArr<T>? GetInnCellVarArr();
        ICellVarArr<T>? GetBouCellVarArr();
        IFaceVarArr<T>? GetInnFaceVarArr();
        IFaceVarArr<T>? GetBouFaceVarArr();
    }
    public interface IJointField<T>
    {
        ICellVarArr<T>? GetJoiCellVarArr();
        IFaceVarArr<T>? GetJoiFaceVarArr();
    }
}
